home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / art&graf.ix / art-0074 / mikrodrw / part_4.gfa (.txt) < prev    next >
GFA-BASIC Atari  |  1997-04-16  |  3KB  |  93 lines

  1. '
  2. ' Mikrodraw
  3. '
  4. ' Teil 4
  5. '
  6. ' Programmiert von Konstantinos Lavassas
  7. '         Januar/Februar 1990
  8. '
  9. ' Redaktion: Ulrich Hilgefort
  10. '
  11. ' für:  TOS - Magazin + Software für Atari ST und TT
  12. '
  13. ' ----------------------------------------------------------------------------
  14. '
  15. ' Je nach Notwendigkeit entweder hcp_9 (für 24-Nadler) oder hcp_9a (für 9er)
  16. ' anwenden.
  17. '
  18. > PROCEDURE drucken
  19.   '
  20.   ALERT 1," | Hardcopy ? ",1," klar | nein",zz%   ! Sicherheitsabfrage
  21.   IF zz%=2
  22.     GOTO end_druck
  23.   ENDIF
  24.   WHILE BIOS(8,0)=0                               ! Parallelport testen
  25.     ALERT 3," | Drucker nicht bereit ! ",1,"nochmal|Abbruch",zz%
  26.     IF zz%=2                                      !
  27.       GOTO end_druck                              ! abbrechen
  28.     ENDIF
  29.   WEND
  30.   @vollbild                                       ! Bildschirm freiräumen
  31.   HIDEM                                           ! Maus verstecken
  32.   IF me%=60                                       ! Systemhardcopy:
  33.     HARDCOPY                                      ! HC auslösen
  34.   ENDIF
  35.   IF me%=59                                       ! 9-Nadel-Druckroutine
  36.     @hcp_9                                        ! aufrufen
  37.   ENDIF
  38.   '
  39.   LPRINT CHR$(12)                                 ! Seite auswerfen
  40.   '
  41.   SHOWM                                           ! Maus wieder ein
  42. end_druck:                                      ! im Abbruchfall geht's
  43. RETURN                                            ! hier raus
  44. '
  45. > PROCEDURE hcp_9
  46.   '
  47.   adr#=XBIOS(3)
  48.   drucker_init$=CHR$(27)+"l"+CHR$(20)             ! Linker Rand oder ähnliches
  49.   start$=CHR$(27)+"*"+CHR$(39)+CHR$(144)+CHR$(1)  ! Druckersteuerung
  50.   '        ESC     *       '         = 399        ! (siehe Text)
  51.   '
  52.   vorschub$=CHR$(27)+"J"+CHR$(23)+CHR$(13)        ! Zeilenvorschub einstellen
  53.   '
  54.   OPEN "O",#2,"LST:"                              ! Ausgabe auf Printer
  55.   PRINT #2,drucker_init$;
  56.   PRINT #2,CHR$(13)                               ! Zeilenvorschub
  57.   FOR i%=0 TO 78 STEP 3                           ! alle Spalten durch
  58.     PRINT #2,start$;
  59.     FOR j%=399 TO 0 STEP -1                       ! alle Zeilen durch
  60.       date%=adr#+(j%*80)++i%                       ! Daten holen
  61.       PRINT #2,CHR$(PEEK(date%+0));               ! und jeweils 3 hinterein-
  62.       PRINT #2,CHR$(PEEK(date%+1));               ! ander ausgeben, bei den
  63.       IF i%<78                                    ! letzten Zeilen
  64.         PRINT #2,CHR$(PEEK(date%+2));             ! nur zwei Spalten
  65.       ELSE                                        ! drucken
  66.         PRINT #2,CHR$(0);
  67.       ENDIF
  68.     NEXT j%
  69.     PRINT #2,vorschub$;                           ! passender Zeilenvorschub
  70.   NEXT i%
  71.   '
  72.   CLOSE #2
  73. RETURN
  74. '
  75. > PROCEDURE hcp_9a
  76.   '
  77.   p_adr%=XBIOS(3)
  78.   puffer$=SPACE$(400)
  79.   drucker_init$=CHR$(27)+"*"+CHR$(5)+CHR$(400)+CHR$(1.5625) ! Grafikmodus
  80.   '
  81.   FOR start%=p_adr% TO p_adr%+79        ! 80 Durchgänge
  82.     adr%=VARPTR(puffer$)
  83.     z%=start%+32000                     !
  84.     REPEAT                              ! Vertikal abtasten
  85.       SUB z%,80                         ! nächste Zeile
  86.       BYTE{adr%}=BYTE{z%}               ! Daten umkopieren
  87.       INC adr%                          ! weiter
  88.     UNTIL z%=start%
  89.     LPRINT drucker_init$;puffer$;CHR$(13);CHR$(27);"J";CHR$(24); ! Zeile ausgeben
  90.   NEXT start%
  91. RETURN
  92. '
  93.